
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;

using Project.Api.Entity;

namespace Project.Api.Repository
{

    public interface IRespository<T>
    {
        IQueryable<T> Table{get;}

        T GetById(object id);

        void Insert(T entity);

        Task InsertAsync(T entity);

        void InsertBulk(IEnumerable<T> entities);
        

        Task InsertBulkAsync(IEnumerable<T> entities);

        void Delete(object id);

        void DeleteBulk(IEnumerable<object> ids);

        void Update(T entity);
        void UpdateBulk(IEnumerable<T> entities);
    }
}